package com.co.notaweb.entities;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;

/**
 * @author PC
 * @version 1.0
 * @created 13-nov-2011 12:14:26
 */
@Entity
@NamedQueries({ @NamedQuery(name = "Logro.allLogrosByCursoDocenteMateria", query = "SELECT l FROM Asignacion a INNER JOIN a.logros l WHERE a.curso.id = :idCurso AND a.docente.id = :idDocente AND a.materia.id = :idMateria "),
	@NamedQuery(name = "Logro.allLogrosByCursoDocenteMateriaPeriodo", query = "SELECT l FROM Asignacion a INNER JOIN a.logros l WHERE a.curso.id = :idCurso AND a.docente.id = :idDocente AND a.materia.id = :idMateria AND l.periodo.id = :idPeriodo ")})
public class Logro {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private long id;
	private String codigo;
	private String descripcion;
	@ManyToOne
	private Periodo periodo;
	@OneToMany(mappedBy = "logro")
	private List<LogroEvaluado> logrosEvaluados;
	@ManyToOne
	private Asignacion asignacion;

	public Logro() {
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Periodo getPeriodo() {
		return periodo;
	}

	public void setPeriodo(Periodo periodo) {
		this.periodo = periodo;
	}

	public List<LogroEvaluado> getLogroEvaluados() {
		return logrosEvaluados;
	}

	public void setLogrosEvaluados(List<LogroEvaluado> logrosEvaluados) {
		this.logrosEvaluados = logrosEvaluados;
	}

	public Asignacion getAsignacion() {
		return asignacion;
	}

	public void setAsignacion(Asignacion asignacion) {
		this.asignacion = asignacion;
	}

}